The present invention relates to a graphics display system including a picture processor producing pixel data for storage as a pixel image in a frame buffer memory controlling a graphics display, wherein the pixel data output of the picture processor may also be selectively stored as a secondary pixel image in another memory.
A typical computer-aided graphics display system stores graphic designs in the form of display lists in a memory. A display list may include a variety of instructions and data describing various graphic objects comprising a graphic design. In some graphics display systems, display lists are developed and maintained by a control processor, and when a particular graphic design is to be displayed on a computer screen, the display list that describes it is transmitted to a separate "picture processor" which processes the display list to produce control and pixel data transmitted to a display controller. The display controller includes a frame buffer memory for storing incoming pixel data at addresses determined by the control data provided by the picture processor. Graphic designs on the computer screen are formed by an array of pixels of various attributes (e.g. color, intensity, etc.), and the pixel data at each address indicates display attributes of a separate pixel. The display controller periodically refreshes the display in accordance with the pixel data currently in the frame buffer memory.
Display lists produced by some graphic design software include concise instructions for producing relatively large amounts of pixel data. For example, a line extending between two points in a particular coordinate system may be represented in a display list as a short sequence of data defining the coordinates of the two points and identifying various attributes of line including color, thickness, etc. The data sequence describing the line is preceded by an instruction to the picture processor indicating the format of the data sequence to follow. In response to the instruction, the picture processor processes the data sequence to produce pixel data corresponding to each pixel to be included in the line on the screen. Prior to sending the pixel data to the display controller, the picture processor also generates and transmits control data to the display controller telling it how to compute the frame buffer memory addresses at which to store the pixel data. Thereafter, as the picture processor transmits pixel data to the display controller, the display controller generates appropriate frame buffer memory addresses and stores the pixel data in the frame buffer memory.
However, a line or other graphic object may also be represented in a display list as a sequence of pixel data directly mapping the object onto the screen, the sequence being preceded by control data indicating the sequence is pixel data and indicating the addresses in the frame buffer memory at which the pixel data is to be stored. In response to such control data, the picture processor passes the pixel and control data on to the display controller without extensive processing inasmuch as the pixel and control data in the display list is already substantially in the form required by the display controller. Thus, the picture processor typically uses less time to process a display list that includes primarily pixel and control data than it uses to process a display list containing high level instructions for computing control and pixel data. However, when possible, graphic design software typically produces display lists using high level instructions rather than bit-mapped pixel data to describe graphic objects because such formats are usually more compactly stored and easier for a general purpose control processor to manipulate.
In some systems, separate display lists may be maintained for each of multiple graphic designs, and selected portions ("windows") of one or more of the designs may be displayed at the same time on the CRT screen. When a display defining a graphic design is sent to the picture processor, a set of instructions is added to the display list to indicate the window to be displayed and the location of a particular area ("viewport") of the CRT wherein the window is to be displayed. Windows may usually be moved about on the screen in response to operator commands, and one window may partially or completely overlap another. When, for example, a first window moves across a second window, temporarily covering and then uncovering the second window, the picture processor must process display lists describing both windows many times so that both windows are redrawn in rapid succession in order to provide smoothly animated movement of the first window over the second. However, when the display lists are in forms requiring extensive processing, the picture processor may not be able to supply pixel data to the display controller fast enough to provide an illusion of smooth window movement.